import GameUI from "./GameUI";
/**
 * 子弹脚本，实现子弹飞行逻辑及对象池回收机制
 */
export default class Bullet extends Laya.Script {
    /** @prop {name:x,tips:"间隔多少毫秒创建一个下跌的容器",type:int,default:1000}*/
    constructor() { super(); this.x=2;}
    onEnable() {
        //设置初始速度
        var rig = this.owner.getComponent(Laya.RigidBody);
        rig.setVelocity({ x: 2, y: -0.6 });
    }

    onTriggerEnter(other, self, contact) {
        //如果被碰到，则移除子弹
        if(other.label==="PolygonCollider")
        {//碰到墙壁为失败
            this.owner.removeSelf();
            GameUI.instance.stopGame();
        }
        else if(other.label==="end")
        {//碰到终点线为胜利
            this.owner.removeSelf();
            GameUI.instance.win();
        }
    }

    onUpdate() {
        //如果子弹超出屏幕，则移除子弹
        if (this.owner.y < -10) {
            this.owner.removeSelf();
        }
    }
    onStageClick() {
        if(this.x==2)this.x=-2;
        else this.x=2;
        var rig = this.owner.getComponent(Laya.RigidBody);
        rig.setVelocity({ x:this.x, y:-0.6 });
    }//每次点击舞台转向
    onDisable() {
        //子弹被移除时，回收子弹到对象池，方便下次复用，减少对象创建开销
        Laya.Pool.recover("bullet", this.owner);
    }
}